It is very important to validate the data coming from the client side, so that wrong data could not process into the application.
In Struts you can validate the data as follows,
Write a simple login.jsp file asADS_TO_REPLACE_1
login.jsp
<%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <s:head /> <center> <h1>Please Login</h1> <s:form action="register"> <s:textfield name="userName" key="userName" label="User Name"></s:textfield> <s:textfield name="password" key="password" label="Password"></s:textfield> <s:submit value="Register"></s:submit> </s:form></center>
home.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Home Page</title> </head> <body bgcolor="lightblue"><br><br><br><br><br> <h1>Welcome <s:property value="userName"/></h1> </body> </html>
LoginModel.javaADS_TO_REPLACE_2
package net.roseindia.model; import java.io.Serializable; import java.util.ArrayList; import java.util.List; public class LoginModel implements Serializable { private static final long serialVersionUID = 1L; private String userName; private String password; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String displayForm(){ return "input"; } }
LoginValidation.java
package net.roseindia.action; import java.util.ArrayList; import java.util.List; import net.roseindia.model.LoginModel; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; public class LoginValidation extends ActionSupport implements ModelDriven<LoginModel> { private static final long serialVersionUID = 1L; LoginModel model; ListcourseList = new ArrayList (); List gender = new ArrayList (); @Override public String execute() throws Exception { // TODO Auto-generated method stub if (model.getUserName() != "") { return SUCCESS; } else { return INPUT; } } @Override public LoginModel getModel() { // TODO Auto-generated method stub model = new LoginModel(); return model; } @Override public void validate() { // TODO Auto-generated method stub if ("".equals(model.getUserName())) { addFieldError("studentName", getText("userName")); } if ("".equals(model.getPassword())) { addFieldError("roll", getText("password")); } super.validate(); } }
LoginValidation-validation.xml
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> <field name="userName"> <field-validator type="requiredstring"> <message key="requiredstring" /> </field-validator> </field> <field name="password"> <field-validator type="requiredstring"> <message key="requiredstring" /> </field-validator> </field> </validators>
LoginValidation.propertiesADS_TO_REPLACE_3
userName = Please Enter Name password = Please Specify Roll No requiredstring = ${getText(fieldName)} is required
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.custom.i18n.resources" value="global" /> <constant name="struts.devMode" value="true" /> <package name="roseindia" namespace="/" extends="struts-default"> <action name="registrationForm" class="net.roseindia.model.LoginModel" method="displayForm"> <result name="input">resources/registration.jsp</result> </action> <action name="register" class="net.roseindia.action.LoginValidation"> <result name="success">resources/home.jsp</result> <result name="input">resources/registration.jsp</result> </action> </package> </struts>
Advertisements
Ads
Ads